package org.extreme.model.managers;

import java.util.Iterator;

import org.extreme.model.data.DataSet;

public interface DataSetSourceManager {
	
	/**
	 * Gets the dataset name iterator.
	 * 
	 * @return the dataset name iterator.
	 */
	public Iterator getDataSetNameIterator();

	/**
	 * Gets dataset with the given name.
	 * 
	 * @param name
	 *            the name of inner dataset.
	 * @return the inner dataset with the given name.
	 */
	public DataSet getDataSet(String name);

	/**
	 * Put dataset with the given name.
	 * 
	 * @param name
	 *            the name of inner dataset.
	 * @param innerTableData
	 *            the added inner dataset.
	 */
	public void putDataSet(String name, DataSet innerTableData);

	/**
	 * Rename dataset with the new name.
	 */
	public boolean renameDataSet(String oldName, String newName);

	/**
	 * Remove inner dataset with the given name.
	 * 
	 * @param name
	 *            the given name.
	 */
	public void removeDataSet(String name);

	/**
	 * Clears all inner dataset.
	 */
	public void clearAllTableData();

}
